#pragma once

#include <iostream>
#include <sstream>
#include <string>
#include "Administracion.h"
#include "Financiero.h"
#include "THL.h"
#include "NodoCliente.h"
#include "Cliente.h"
#include "ListaEnvio.h"
#include "NodoEnvio.h"
#include "Envios.h"
#include "Area.h"
#include "Ruta.h"
#include "Transporte.h"

using namespace std;

class NodoCliente;
// Se encarga de manejar la una lista de clientes estaticos
class ListaCliente
{
private:
    NodoCliente* primero;
    NodoCliente* actual;

public:
    ListaCliente();
    ~ListaCliente();
    void setPrimero(NodoCliente* prim);
    NodoCliente* getPrimero();
    void setActual(NodoCliente *actu);
    NodoCliente* getActual();

    void insertarPrimero(Cliente *c);    //Inserta al principio
    void borrarPrimero();               //Borra al principio
    void mostrar();                     //Muestra la lista completa
    void insertarFinal(Cliente *c);      //Inserta al final
    void borrarFinal();                 //Borrar al final
    Cliente* buscarPorNombre(string nom);    //Busca por nombre y devuelve el cliente
    void borrarPorNombre(string nom);       //Borra por nombre
};
